草庐IT

c++ - std::transform 的泛化

全部标签

java - 在 C/Java 项目中,管理构建的合适方法是什么?

在C/Java项目中,管理构建的合适方法是什么?我最初想用Autotools构建所有C语言,用ApacheAnt构建所有Java语言,然后让每个构建器“执行”另一个构建器。另一种方法是在Autotools中完成所有操作。我更喜欢autotools而不是ant,因为我不知道有任何类似Autoconf的Ant应用程序。该项目是一个JNI项目,在语言之间具有同等/对称的责任,换句话说,它应该可供仅使用Java的开发人员和仅使用C的开发人员以及使用Java和C的开发人员使用。谢谢,陈子 最佳答案 我会推荐CMake这是多平台和多语言的。您可

java - 比较 double 时的不同行为

这个问题在这里已经有了答案:Isfloatingpointmathbroken?(31个答案)关闭6年前。您好,我知道计算机受数字精度的限制,有些数字无法用二进制表示。这就是为什么我要问为什么这样比较(0.1*3)==0.3在Java语言中计算为false而在C中它计算为true,对我来说Java行为更直观一点。提供的任何答案都不能回答我的问题,为什么它们有不同的行为,因为它们都使用IEEE754标准。@更新我正在使用ideone来测试条件。

java - 什么是弱全局引用?它与全局引用有何不同?

JNI中的弱全局引用是什么?它与全局引用和本地引用有何不同? 最佳答案 我认为您的问题的答案可以在这里找到:http://java.sun.com/docs/books/jni/html/refs.html如其所写:Localandglobalreferenceshavedifferentlifetimes.Localreferencesareautomaticallyfreed,whereasglobalandweakglobalreferencesremainvaliduntiltheyarefreedbytheprogramm

java - JNI 直接缓冲区。谁负责 native 缓冲区释放?

一方面,假设我们有一个使用env->NewDirectByteBuffer()创建的直接字节缓冲区。另一方面,我们有类似的直接缓冲区,但使用ByteBuffer.allocateDirect()创建。显然,这两个对象都应该由JVM以相同的方式管理,包括管理后备native缓冲区,在第一种情况下由用户提供,在第二种情况下由JVM从native堆中分配。当然,JVM必须在第二个对象的GC期间释放后备缓冲区(使用ByteBuffer.allocateDirect()实例化)。我的问题是:JVM会在第一个对象的GC期间尝试释放缓冲区(使用env->NewDirectByteBuffer()实例

java - Jxls 错误 : Cannot load XLS transformer. 请确保 Transformer 实现在类路径中

这个问题已经被问过一次了,但是没有人给出绝对的解决方案。我试图从现有模板生成一个xls文件,但我收到一个错误,我不知道如何面对!我的代码:Stringnombre="Manuel";try(InputStreamtemplateFileName=ExportExcelServlet.class.getResourceAsStream("/segJBOSS/lib/xls/Tabla_Gestion.xlsx")){try(OutputStreamdestFileName=newFileOutputStream("Tabla_Gestion.xls")){ArrayListarray=n

java - 如何控制 javax.xml.transform.Transformer 创建的行结尾?

我正在使用以下方法将DOM文档(org.w3c.dom.Document)转换为流Transformertransformer=TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(OutputKeys.ENCODING,UTF_8.name());ByteArrayOutputStreamout=newByteArrayOutputStream();StreamResultoutput=newStreamResult(out);Sourceinput=newDOMSource(d

java - 从使用 <T extends TestClass> 泛化的通用方法返回 this

为什么我不能在Java中这样做:publicclassTestClass{publicTtest(){returnthis;//errorhere}}据我了解,this将始终是某个扩展TestClass的类的实例,那么为什么编译器不允许上面的代码?即使我将扩展TestClass,this的类型仍然适合extendsTestClass。我收到以下错误:Error:(4,16)java:incompatibletypes:TestClasscannotbeconvertedtoT 最佳答案 假设你有SubTestClassextends

java - 如何使用 Javax.xml.transformer API 将 XML 文档传递给 XSL 文件?

我正在使用javax.xml.transformAPI进行XSL转换。API仅允许一个XML文档作为输入来应用如下转换。DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();StringWriterstringWriter=newStringWriter();Filexml=newFile("C:\\abc");Filexsl=newFile("C:\\def.xsl");factory.setNamespaceAware(true);DocumentBuilderbuilder=factory.newDo

java - 使用 JNI 通过 std::ostream 从 C++ 获取文本数据到 Java

我有一个C++类,它采用std::ostream作为参数,以便连续输出文本(跟踪信息)。我需要尽可能高效地将此文本传送到Java端。最好的方法是什么?我正在考虑使用直接缓冲区,但另一种方法是将所有函数调用转移到Java并在那里进行所有处理,但似乎我需要大量的JNI调用。如果可以显示确切实现方法的示例,那将非常有帮助,或者如果已经存在一些代码可以执行此操作(可能是另一个项目的一部分)。另一个帮助是将它直接连接到标准的Java流构造,这样整个实现对开发人员来说是完全透明的。(编辑:我找到了SharingoutputstreamsthroughaJNIinterface,这似乎是重复的,但并

java - 如果我使用 JNI 从 C 的多个线程调用 java 函数会怎样?

此链接似乎表明“它只是有效”:(在7.3附加native线程下的底部相当远)http://java.sun.com/docs/books/jni/html/invoke.html我不明白这怎么可能,嵌入式JVM会自动启动自己的线程吗?或者排队JNI调用?否则怎么可能多次调用同一个虚拟机。我没有指示执行任何线程?我能想到的任何工作方式是,如果java代码将简单地在与c代码相同的调用线程中执行。那是对的吗?这意味着我不必在Java中执行任何线程。 最佳答案 jvm不必创建自己的线程,方法调用在创建它们的native线程上执行。Attac